#ifndef _MODULE_OBJECT_HPP_
#define _MODULE_OBJECT_HPP_

#define ERROR_MESSAGE_SIZE 512
class ModuleObject
{
	//$$仅仅用于填写一个模块的内容，可直接访问，没有设置的方法
public:
	const char             *name;//模块名称
	ModuleObject*          *dep;//本模块依赖的其它模块
	void                   (*module_init)(void);//模块初始化函数
	char                   last_error[ERROR_MESSAGE_SIZE];//模块产生的最后一条错误信息

	enum {
		MODULE_STATE_UNAVAILABLE,//模块现在不可使用
		MODULE_STATE_INITIALIZE, //模块已初始化
		MODULE_STATE_READY,      //模块已准备好
		MODULE_STATE_FINISHED,   //模块已完成工作
		MODULE_STATE_WORKING,    //模块正在执行相关的工作
		MODULE_STATE_SLEEPING,   //模块正在休眠
		MODULE_STATE_BLOCKING    //模块因等待资源而阻塞
	}                      state;//模块当前状态
};

#endif//_MODULE_OBJECT_HPP_
